*--------------* | BigAnim v3.5 | *==============* What is BigAnim? ~~~~~~~~~~~~~~~~ BigAnim is an animation player (you guessed it!), and it's called that because it is able to display animations that are too large to be loaded into memory directly. The two most important features of BigAnim are: o BigAnim loads the animation asynchronously, 100 KByte at a time, which means that while it displays one 100 KByte part of the animation, it is loading the next 100 KByte simultaneously. o If you're using Kickstart 3.0 or later, BigAnim will use the new double- buffering routines in graphics.library. If you're not, BigAnim will take over the display from Intuition, to increase playback speed. However, if you flip screens, or pull down BigAnim's screen, BigAnim will detect this, and use the old, intuition-friendly (and slow!) routines instead. Usage ~~~~~ BigAnim can only be run from a CLI or shell, and the usage is: BigAnim filename [LOADALL] [HIRES] [BLANK] [VERBOSE] [BUFSIZE n] [RELTIME n] [TASKPRI n] where "filename" should refer to an ANIM type 5 or 7 animation. ANIM type 8 is not supported, due to its relative inefficiency compared to ANIM type 7. For best results, type 8 animations should be converted to type 7. Options ~~~~~~~ LOADALL Tells BigAnim to load the whole animation before starting playback. Note that the animation is loaded in chunks, and the size of these chunks can be set with the BUFSIZE keyword. HIRES Forces the screen resolution to Hires/Interlace. This will only work if the original resolution was lores/nolace. BLANK Blanks the mouse pointer. VERBOSE BigAnim prints some info about the animation, such as screen size/depth, display modes, animation type, etc. Example: Explanation: File: Juggler File name Picture: 320 x 200 (48000 bytes) Picture size (width, height & bytes) Display: 320 x 200 x 6 planes Display resolution & depth Modes: LORES HAM View modes AnimType: 5 Anim type: 5, 7 (short) or 7 (long) Length: 24 frames The number of frames in the anim Speed: 48 fps Actual playback speed (frames/second) BufUsage: 94-99 % Buffer utilization percentage (min-max) Note: The actual numbers for the last four lines won't be printed until the animation has been displayed once (twice for the "Speed" and "BufUsage" numbers), simply because that information isn't available until then. The "BufUsage" numbers will not be printed if you're using the LOADALL switch. BUFSIZE n Sets the buffer size to n bytes. The default is 100 K (102400 bytes), which means that BigAnim loads 100 K at a time. RELTIME n Sets the playback timing, in 1/50 seconds if you're running on a PAL system, or 1/60 for NTSC systems. TASKPRI n This sets BigAnim's task priority during playback. If your hard disk controller doesn't use DMA, the playback will probably be less jerky if you use a high task priority. The best value for priority is generally the same as the file system or the hard disk driver uses. Actually, TASKPRI can be used with good results even on DMA controllers: On my setup with an A590 and a Quantum LP240S, the playback becomes somewhat smoother when I use TASKPRI 11. Keys ~~~~ While the animation is being played, you can press the following keys: ESC - Quits BigAnim (you can also use the right mouse button) Space - Pauses the animation, or restarts if already paused N - If paused, displays the next frame TAB - Toggles colour cycling Shift TAB - Turns off cycling and restores the original colour map 0-9 - Changes playback speed. By pressing one of the keys 1-9 you can directly set the RELTIME value during playback. If you press 0, BigAnim will use the timing information stored in the animation. Environment ~~~~~~~~~~~ If you want to use certain options or settings as default, you can save them in an environment variable called BIGANIMOPTS. So, for instance, if you always want to use a buffer size of 204800 bytes, do: SetEnv BIGANIMOPTS BUFSIZE 204800 and BigAnim will use that instead of the built-in default of 102400 bytes. Values for BUFSIZE, RELTIME and TASKPRI set via BIGANIMOPTS can be over- ridden with the respective command line options. All options except LOADALL can be used in BIGANIMOPTS. Additional info ~~~~~~~~~~~~~~~ o BigAnim supports CMAP chunks internal to the animation, and changes the screen colors accordingly. o BigAnim uses the RelTime field of the ANHD chunk to decide how much delay to put between frames. You can override this value by specifying a new value with the RELTIME keyword, or by pressing a number key during playback. o BigAnim uses two sets of specially optimised decompression routines, for processors with and without code cache. How to choose the best buffer size ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To maximize playback speed, do this: If you have enough memory in your Amiga to load the entire animation, use the LOADALL switch. This will lead to the fastest possible playback. If you don't have that much memory, you can try different buffer sizes with the BUFSIZE keyword. Tip: If you use the VERBOSE option, BigAnim will measure the playback speed, so you can easily see how different buffer sizes affect playback. Also, the "BufUsage" numbers will tell you how well the buffers are utilized during playback. When choosing buffer size, please keep these facts in mind: 1. Due to the asynchronous nature of BigAnim's loading method, using the largest possible buffer size may not give the fastest playback. 2. Certain combinations of file size and buffer size should be avoided. An example: If you use a buffer size of 300 KBytes with an animation that's 1000 KBytes long, then the first three reads will read 300 KBytes each, but the fourth will only read 100 KBytes. This is clearly not optimal. It would be much better to use a buffer size of 250 or 334 KBytes (or just a little bit more, to be on the safe side). So, in cases when the last read of an animation is less than half as long as the others, BigAnim will print a warning message: "non-optimal buffer size". There are two common problems often encountered while trying to find the ideal settings: Common problem #1: Sometimes the playback stops for a while, then continues. Reason: Either (1) your hard disk cannot read fast enough to keep up with the playback, (2) your hard disk doesn't have enough buffers, or (3) the hard disk driver uses all available CPU time so the playback stops. Solution: (1) Increase buffer size, and/or use RELTIME to slow down play- back so the hard disk can keep up. (2) Use "AddBuffers" to add more buffers to your hard disk. BigAnim uses the DOS "Seek" function from time to time, and the "Seek" operation will be much faster if you have enough buffers. "Enough" is approximately one buffer for every 36 KBytes of data in the animation file. (3) Use TASKPRI to increase BigAnim's task priority. Usually, using the same priority that the hard disk driver uses will give the best results. Common problem #2: Now and then the playback slows down temporarily. Reason: Due to hard disk transfer, the decompression can't be done at full speed. Solution: Use RELTIME to slow down playback. The playback will of course be slower, but not as jerky as before. Future additions ~~~~~~~~~~~~~~~~ I am currently working on additions to the IFF ANIM standard, so that IFF 8SVX sounds can be stored inside the animation file, and played at certain points in the animation. Future versions of BigAnim will support this, and possibly also loops, so that parts of an animation can be played back repeatedly. Disclaimer ~~~~~~~~~~ #include Distribution ~~~~~~~~~~~~ BigAnim is freely distributable, as long as BigAnim and all related files are distributed unchanged. Feedback ~~~~~~~~ If you want to send me suggestions, bug reports, etc, I can be reached at: Internet: d8sunch@dtek.chalmers.se Snail-mail: Christer Sundin 7321 Bollestad S-442 93 Kungälv Sweden